package cn.rkylin.oms.base.refundReasonType.utils.apprhandler.impl;

import com.alibaba.fastjson.JSONObject;

import cn.rkylin.oms.aftersale.sysrefund.vo.SysRefundVO;
import cn.rkylin.oms.base.refundReasonType.utils.apprhandler.ApprHandler;
import cn.rkylin.oms.common.consts.YesNoConst;

/**
 * 类名:IsForceApprHandler <br/>
 * 作用: 是否强制审核校验. <br/>
 * 创建原因:	 是否能强制执行审核. <br/>
 * 创建时间:     2017年12月11日 下午6:13:13 <br/>
 * @author   zhanghao
 * @version  v1.0 
 */
public class IsForceApprHandler extends ApprHandler {
    private String ruleContent = "不支持强制审核；";
    /**
     * 获取强制审核反馈信息.
     * @see cn.rkylin.oms.base.refundReasonType.utils.apprhandler.ApprHandler#getRuleContent()
     */
    @Override
    protected String getRuleContent() {
        return ruleContent;
    }

    /**
     * 强制审核校验.如果规则不支持强制审核，就不继续进行校验，并返回错误信息
     * @see cn.rkylin.oms.base.refundReasonType.utils.apprhandler.ApprHandler#isValid(cn.rkylin.oms.aftersale.sysrefund.vo.SysRefundVO)
     */
    @Override
    protected boolean isValid(SysRefundVO sysRefundVO) throws Exception {
        JSONObject paramObject = getContextObj().getJSONObject("param");
        paramObject.put("forceAppr", YesNoConst.YES);  // 本次执行的审核是强制审核
        getContextObj().put("param", paramObject);
        boolean returnValue = true;
        String isForceAppr = getContextObj().getJSONObject("param").getString("isForceAppr");   // 判断本条原因是否支持强制审核
        // 如果不支持强制审核——返回错误信息，并停止继续校验审核
        if(YesNoConst.NO.equals(isForceAppr)){
            returnValue = false;
            super.SetSuccessor(null);
        }
        return returnValue;
    }

    /**
     * 校验是否验证此原因.返回空数组则一定会校验
     * @see cn.rkylin.oms.base.refundReasonType.utils.apprhandler.ApprHandler#getRuleCheckArray()
     */
    @Override
    protected int[] getRuleCheckArray() {
        return new int[0]; 
    }

}

